package com.cw.DesignModel23.Behavioral.InterpreterPattern;

/**
 * 加法解释器
 *      实现 Interpreter 解释器 接口
 * 用于实现加法计算
 *      加法有加数 和 被加数 , 两个加数分别也都是一个解释器
 */
public class AddInterpreter implements Interpreter {
    /**
     * 第一个表达式
     */
    private Interpreter firstInterpreter;

    /**
     * 第二个表达式
     */
    private Interpreter secondInterpreter;

    public AddInterpreter(Interpreter firstInterpreter,
                          Interpreter secondInterpreter) {
        this.firstInterpreter = firstInterpreter;
        this.secondInterpreter = secondInterpreter;
    }

    @Override
    public int interpret() {
        return this.firstInterpreter.interpret() +
                this.secondInterpreter.interpret();
    }

    @Override
    public String toString() {
        return "+";
    }
}

